import request from "@/utils/request";

const WASTETYPE_BASE_URL = "/api/v1/wasteTypes";

const WasteTypeAPI = {
  /** 获取垃圾类型管理分页数据 */
  getPage(queryParams?: WasteTypePageQuery) {
    return request<any, PageResult<WasteTypePageVO[]>>({
      url: `${WASTETYPE_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取垃圾类型管理表单数据
   *
   * @param id 垃圾类型管理ID
   * @returns 垃圾类型管理表单数据
   */
  getFormData(id: number) {
    return request<any, WasteTypeForm>({
      url: `${WASTETYPE_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /** 添加垃圾类型管理*/
  add(data: WasteTypeForm) {
    return request({
      url: `${WASTETYPE_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 更新垃圾类型管理
   *
   * @param id 垃圾类型管理ID
   * @param data 垃圾类型管理表单数据
   */
  update(id: number, data: WasteTypeForm) {
    return request({
      url: `${WASTETYPE_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 批量删除垃圾类型管理，多个以英文逗号(,)分割
   *
   * @param ids 垃圾类型管理ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${WASTETYPE_BASE_URL}/${ids}`,
      method: "delete",
    });
  },
};

export default WasteTypeAPI;

/** 垃圾类型管理分页查询参数 */
export interface WasteTypePageQuery extends PageQuery {
  /** 类型名称 */
  typeName?: string;
  /** 最低价（元/吨） */
  minUnitPrice?: number;
  /** 最高价（元/吨） */
  maxUnitPrice?: number;
  /** 最低价（元/吨） */
  minProcessPrice?: number;
  /** 最高价（元/吨） */
  maxProcessPrice?: number;
}

/** 垃圾类型管理表单对象 */
export interface WasteTypeForm {
  id?: number;
  /** 类型名称 */
  typeName?: string;
  /**市场价 */
  marketPrice: string | undefined;
  /** 回收单价（元/吨） */
  unitPrice?: string | undefined;
  /** 处理单价（元/吨） */
  processPrice?: string | undefined;
  /**政府补贴 */
  govSubsidyPrice?: string | undefined;
  /**碳减排补贴 */
  cercSubsidyPrice?: string | undefined;
  /**碳减排系数 */
  cerc: string | undefined;
  /**用户分成 */
  userRatio?: string | undefined;
  /**机构分成 */
  orgRatio?: string | undefined;
  /**环保评级 */
  envRating?: string;
  /**积分 */
  pointsPerKg?: string | undefined;
  /** 分类标准说明 */
  description?: string;
}

/** 垃圾类型管理分页对象 */
export interface WasteTypePageVO {
  id?: number;
  /** 类型名称 */
  typeName?: string;
  /** 回收单价（元/千克） */
  unitPrice?: number;
  /** 分类标准说明 */
  description?: string;
}
export const envRatings = [
  {
    value: 1,
    label: "一级",
  },
  {
    value: 2,
    label: "二级",
  },
  {
    value: 3,
    label: "三级",
  },
  {
    value: 4,
    label: "四级",
  },
  {
    value: 5,
    label: "五级",
  },
];
